package io.renren.common.utils;

import cn.hutool.core.io.file.FileReader;
import io.renren.common.exception.RRException;
import io.renren.modules.api.entity.DnsParsingEntity;
import io.renren.modules.api.entity.WeixinNoEntity;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class FileUtils {
    /**
     * 遍历文件/文件夹 - 函数
     * 文件路径
     */
    public static void recursiveFiles(String path, DnsParsingEntity dnsParsing, List<WeixinNoEntity> list,String operater)throws Exception{
        // 创建 File对象
        File file = new File(path);
        // 取文件/文件夹
        File files[] = file.listFiles();
        // 对象为空 直接返回
        if(files == null){
            return;
        }
        // 目录下文件
        if(files.length == 0){
            // throw new RuntimeException("该文件夹下没有文件");
        }
        // 存在文件遍历判断
        for (File f : files){
            // 判断是否为文件夹
            if(f.isDirectory()){
                // 为文件夹继续遍历
                recursiveFiles(f.getAbsolutePath(),dnsParsing,list,operater);
                // 判断是否为文件
            } else if(f.isFile()){
                //如果是html文件则存入集合
                if(f.getName().indexOf(".html")!=-1){
                    String arr[]=f.getAbsolutePath().split(dnsParsing.getPath());
                    String relativePath=null; //相对路径
                    if(arr.length>0){
                        relativePath=arr[arr.length-1];
                    }
                    // url 域名
                    // linkurl 访问路径（域名后面的）
                    // path 服务器路径

                    WeixinNoEntity weixinNoEntity=new WeixinNoEntity();
                    weixinNoEntity.setUrl(dnsParsing.getUrl());
                    weixinNoEntity.setLinkurl(relativePath);
                    weixinNoEntity.setPath(dnsParsing.getPath());
                    weixinNoEntity.setDnsid(dnsParsing.getId());
                    weixinNoEntity.setDnsname(dnsParsing.getName());
                    weixinNoEntity.setOperater(operater);
                    weixinNoEntity.setCreatetime(new Date());
                    weixinNoEntity.setAllurl(dnsParsing.getUrl()+relativePath);
                    list.add(weixinNoEntity);
                }
            } else {
               // throw new RuntimeException("未知错误文件");
            }
        }
    }

    /**
     * 根据绝对路径获取html字符串
     * @param path
     * @return
     * @throws Exception
     */
    public static String getHtmlByFile(String path)throws Exception{
        String result=null;
        try {
            //默认UTF-8编码，可以在构造中传入第二个参数做为编码
            FileReader fileReader = new FileReader(path);
            result = fileReader.readString();
        }catch (Exception e){
            new RRException("html文件不存在");
        }
        return result;
    }


    /**
     * 根据绝对路径获取文件名
     * @param path
     * @return
     * @throws Exception
     */
    public static String getFileName(String path)throws Exception{
        //默认UTF-8编码，可以在构造中传入第二个参数做为编码
        FileReader fileReader = new FileReader(path);
        String result = fileReader.getFile().getName();
        return result;
    }



//    public static void main(String args[]) throws Exception {
//        List<WeixinNoEntity> list=new ArrayList<WeixinNoEntity>();
//        String path="/Users/zhaoouyang/res/doc/html/wxhtml/360tg3/";
//        DnsParsingEntity dnsParsing=new DnsParsingEntity();
//        dnsParsing.setPath(path);
//        FileUtils.recursiveFiles(path,dnsParsing,list,"admin");
//        System.out.println(list.size());
//    }

}
